// 更新baseurl

const fs = require('fs')
const path = require('path')
const shell = require('shelljs'); //shelljs 更强大
const Dis_baseurl_devTools = path.join(__dirname, '../../../../devTools')
const Dis_baseurl_config = path.join(__dirname, '../../../../config')

const Json = require(path.join(__dirname, '../../../../package.json'))

// 目标文件,最后会在index.html中引用
const FILE_PATH1 = path.resolve(__dirname, '../../../../public/static/libs/baseurl.js')
const FILE_PATH2 = path.resolve(__dirname, '../../../../static/libs/baseurl.js')

function setBaseUrl(FILE_PATH) {
    fs.access(FILE_PATH, fs.constants.F_OK, (err) => {
        // console.log(err)
        if (err) {
            fs.writeFile(FILE_PATH, `// frontend
Object.defineProperty(this, 'BASE_URL', {value:'/permission/'});`, 'utf8', function(err) {
                if (err) throw err;
            });
        }
    })
}

module.exports = function() {
    return new Promise((resolve) => {
        //如果“baseurl.js”不存在就拷贝一份
        fs.access(Dis_baseurl_devTools, fs.constants.F_OK, (err) => {
            // 如果 devTools 文件夹存在
            if (!err) {
                // 如果 baseurl.js 文件不存在
                fs.access(Dis_baseurl_devTools + '/baseurl.js', fs.constants.F_OK, (err) => {
                    if (err) {
                        shell.cp('-R', path.join(__dirname, './baseurl.cfg'), Dis_baseurl_devTools + '/baseurl.js')
                        console.log(`\n\x1b[33mbaseurl.js已复制到目标位置：${ Dis_baseurl_devTools }`)
                    }
                })
            }
        })
        fs.access(Dis_baseurl_config, fs.constants.F_OK, (err) => {
            // 如果 config 文件夹存在
            if (!err) {
                // 如果 baseurl.js 文件不存在
                fs.access(Dis_baseurl_config + '/baseUrl.js', fs.constants.F_OK, (err) => {
                    if (err) {
                        shell.cp('-R', path.join(__dirname, './baseurl.cfg'), Dis_baseurl_config + '/baseUrl.js')
                        console.log(`\n\x1b[33mbaseurl.js已复制到目标位置：${ Dis_baseurl_config }`)
                    }
                })
            }
        })

        if (Json.scripts['switchBaseUrl']) {
            setBaseUrl(FILE_PATH2)
        }else{
            setBaseUrl(FILE_PATH1)
        }

        resolve()
    })
}
